package com.peas.platform.module.icims.budget.statistics.adapter.repository.po;

import java.util.*;
import java.math.*;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.peas.platform.framework.mybatisplus.po.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.apache.ibatis.type.JdbcType;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

// 部门绩效目标
@Data
@EqualsAndHashCode(callSuper = false)
@TableName(value = "`tbl_department_performance`")
public class DepartmentPerformancePo extends BasePo {

    //年度
    @Size(max = 4, message = "年度不能超过4个字符")
    @TableField(value = "`year`", jdbcType = JdbcType.VARCHAR)
    private String year;

    //部门绩效类型
    //1:一上编制、2:二上编制
    @Size(max = 20, message = "部门绩效类型不能超过20个字符")
    @TableField(value = "`department_performance_type`", jdbcType = JdbcType.VARCHAR)
    private String departmentPerformanceType;

    //部门名称
    @Size(max = 200, message = "部门名称不能超过200个字符")
    @TableField(value = "`department_name`", jdbcType = JdbcType.VARCHAR)
    private String departmentName;

    //部门职能概述
    @TableField(value = "`department_summarize`", jdbcType = JdbcType.CLOB)
    private String departmentSummarize;

    //本年度部门预算收入（总额）
    //总额（万元）
    @TableField(value = "`total_revenue`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal totalRevenue;

    //财政拨款收入
    //1.财政拨款收入
    @TableField(value = "`allocate_revenue`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal allocateRevenue;

    //一般公共预算
    //其中：一般公共预算
    @TableField(value = "`allocate_revenue1`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal allocateRevenue1;

    //政府性基金预算
    //政府性基金预算
    @TableField(value = "`allocate_revenue2`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal allocateRevenue2;

    //国有资本经营预算
    //国有资本经营预算
    @TableField(value = "`allocate_revenue3`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal allocateRevenue3;

    //财政专户管理资金
    //2.财政专户管理资金
    @TableField(value = "`special_revenue`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal specialRevenue;

    //事业收入
    //3.事业收入
    @TableField(value = "`business_revenue`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal businessRevenue;

    //经营收入
    //4.经营收入
    @TableField(value = "`engage_revenue`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal engageRevenue;

    //其他收入
    //5.其他收入
    @TableField(value = "`other_revenue`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal otherRevenue;

    //部门整体支出目标（本年）
    //年度目标
    @TableField(value = "`target_current`", jdbcType = JdbcType.CLOB)
    private String targetCurrent;

    //部门年度整体预算完成率（本年）
    //年度目标
    @TableField(value = "`target_rate_current`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal targetRateCurrent;

    //部门整体支出目标（三年期）
    //年度目标
    @TableField(value = "`target_three`", jdbcType = JdbcType.CLOB)
    private String targetThree;

    //部门年度整体预算完成率（三年期）
    //年度目标
    @TableField(value = "`target_rate_three`", jdbcType = JdbcType.DECIMAL)
    private BigDecimal targetRateThree;

    //其他需要说明的情况
    @TableField(value = "`others`", jdbcType = JdbcType.CLOB)
    private String others;

    //本年度数据行
    @TableField(value = "`current_rows`", jdbcType = JdbcType.INTEGER)
    private Integer currentRows;

    //三年期数据行
    @TableField(value = "`third_rows`", jdbcType = JdbcType.INTEGER)
    private Integer thirdRows;

}
